Git LFSについて勉強 |
您所在的位置:网站首页 › git svn clone -r › Git LFSについて勉強 |
概要説明します。 需要あるかわかりませんが、最近はGitHubも勉強しているため、自己啓発かねて書いていきます。 Git LFSの説明 GitHubの場合(使い方や制限等)![]() 以下、目次となります! Git LFSとは?GitHubの場合GitHubでLFSについてLFSストレージLFS帯域データパックLFSのサーバについて操作例初期設定Cloneの挙動その他まとめ Git LFSとは?最初にGit LFSについて簡単に説明します。 Gitは大容量ファイルの管理は不得意。 Git内ではURL(ポインタ)だけ管理して、実体は別の場所に格納しよう。![]() え、これだけ? ![]() はい。 不得意という言葉に対する具体的な症例として、操作が重くなるというのが一番でしょうか。(Gitにおいて管理ができなくなるってわけじゃありません。) けど、GitHub、Gitlab、Backlog等のGitホスティングサービスでは、Gitリポジトリに大容量ファイルを突っ込まれても困るのか、容量制限があります。→ 1ファイル辺りの容量制限(100MB等)があるため、LFSを使わざるを得なかったり、大容量ファイルを諦めたり、大容量ファイルは別のDropboxサービスで管理って流れになります。 GitHubの場合 GitHubでLFSについて公式サイトの関連記事はこの辺りでしょうか。 ![]() 数値関係をまとめておきますね(2023年時点)。 プラン1ファイル辺りの容量制限LFSストレージLFS帯域LFS利用時の最大ファイルサイズGithub.com(Free)100MB以上はだめ。1GB1GB2GBGithub.com(Team)100MB以上はだめ。1GB1GB4GBGitHub enterprise Cloud100MB以上はだめ。1GB12GB5GBGitHub enterprise Server特になし。(設定値を設けることも可)ーー?GitHubだとPublicリポジトリだと色々な機能が無償で使えることがありますが、LFSはPublicリポジトリでもPrivateリポジトリと同じ制限です。 Enterpriseの場合はOrganizationの合計値になります。 以下はLFSに関する警告やエラー例です。 GitHub Desktopを利用している場合、コミット段階で次の警告が表示されます。 ![]() 警告を無視してコミット後にプッシュすると、アップロードが終わった段階でErrorが表示されます(すぐにErrorにならない)。 ![]() なお、公式マニュアルによると、ファイル容量50MBを超えた段階で、GitHubから警告がくるようです。 LFSストレージLFS対象となったファイル置場の最大容量です。 例えば、100MBのファイルを10個格納したら一杯です。 LFS帯域LFSストレージからファイルをダウンロードした容量のことです。 「LFSサーバ」 → 「自分のPC」 等の転送時にLFS帯域を消費します。 例えば、100MBのファイルを10個アップロードする分には問題ありませんが、100MBのファイルを10個ダウンロードすると、すっからかんです。 ![]() Publicだとやばいかな? ![]() 一般利用者のダウンロードですぐに消費かな。 データパックLFSストレージやLFS帯域は「データパック」を購入することで追加出来ます。 ![]() 1パック5USD 50GBのLFSストレージ 50GBのLFS帯域です。 ![]() Enterpriseの場合は、年間購入っぽいです(実際に購入したことは無くてEnterpriseを試験運用したときに確認)。 ![]() 自前で準備も出来るようです。 例えば、LFSサーバをAWSのS3とする場合ですね。→ 詳しくはググると、先輩方の実施記事がいくつも見つかりました。 けど管理を気を付けないと、面倒な割に、それなりに高額になるかも・・・。 S3ファイルのダウンロードがインターネットになる場合、データパックを購入するのと同じぐらいのコストです。 操作例LFSをサポートしているGitホスティングサーバは結構ありますが、今回はGitHubを使いました。 初期設定git lfsを導入していない場合は、別途導入しましょう。 Windowsであれば、以下からGitをデフォルトでインストールすれば入ります。 この段階で関連ファイルをコミット&プッシュすれば準備完了です。 これら操作は代表者が最初に行えればOKです。 Cloneの挙動GitHub Desktopの場合、LFSファイルも自動的にダウンロードされました。 大容量のLFSファイルも使うのであれば良いのですが、不要な場合、LFS帯域の節約のためにダウンロードしたくありません。 次のようなコマンドを実行しておくと、LFSファイルはポインタしかダウンロードしません。 $ git lfs install --skip-smudge Git LFS initialized. $ git config -l → filter.lfs.smudge=git-lfs smudge --skip -- %f があれば設定OK上記コマンドはリポジトリ内(.git)のフォルダじゃなくてOKです。 後から、ダウンロードしたい場合は、次のコマンドを実行します。 git lfs pull [ファイル名]また、やっぱり最初から全部ダウンロードする設定に戻したい場合は、次のコマンドを実行します。 $ git lfs install Git LFS initialized. $ git config -l → filter.lfs.smudge=git-lfs smudge -- %f その他◇GitHubでLFS帯域やストレージの制限を超えるとエラーが表示されます。 batch response: This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access. Uploading LFS objects: 0% (0/1), 0 B | 0 B/s, done. error: failed to push some refs to 'https://github.com/...git'![]() ◇LFSファイルのダウンロードフェーズで「x509: certificate signed by unknown authority」が表示されてダウンロード出来ないことがありました(企業内だと多い?) セキュリティ的によろしくありませんが、暫定で git config –global http.sslverify false とすることで回避出来ます。 git cloneの時にダウンロードしたくありません。 まとめGit LFSに関する簡単な説明及び、GitHubでのLFSに関してざっくりとご紹介しました。 100MB以上のファイルはLFSの仕組みを使わないと管理出来ない。 LFSにはストレージや帯域の制限があるため計画的に。![]() 最後までご覧いただきありがとうございました。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |